#include "asm/regdef.h"
#include "asm/asm.h"
#include "asm/context.h"
#include "inst_test.h"
#include "trap.h"
    .set noreorder
    .set noat 
    .global main 
    .text 

main:
    ###test inst
    TEST_MFHI(0xbd5972d1, 0xbd5972d1)
    TEST_MFHI(0xb63e63e4, 0xb63e63e4)
    TEST_MFHI(0xc2902fdc, 0xc2902fdc)
    TEST_MFHI(0x72617ff5, 0x72617ff5)
    TEST_MFHI(0x3ea91bf2, 0x3ea91bf2)
    TEST_MFHI(0xdab0b4f0, 0xdab0b4f0)
    TEST_MFHI(0xad676d58, 0xad676d58)
    TEST_MFHI(0xf22d7d6e, 0xf22d7d6e)
    TEST_MFHI(0xf2c597c2, 0xf2c597c2)
    TEST_MFHI(0x572161b0, 0x572161b0)
    TEST_MFHI(0xd1fb0c12, 0xd1fb0c12)
    TEST_MFHI(0x54a5493d, 0x54a5493d)
    TEST_MFHI(0x96809138, 0x96809138)
    TEST_MFHI(0x1439f6ec, 0x1439f6ec)
    TEST_MFHI(0x260f6c1e, 0x260f6c1e)
    TEST_MFHI(0x34edb2a0, 0x34edb2a0)
    TEST_MFHI(0x020cff2c, 0x020cff2c)
    TEST_MFHI(0x3fd6ae20, 0x3fd6ae20)
    TEST_MFHI(0x335f57dc, 0x335f57dc)
    TEST_MFHI(0x44576a40, 0x44576a40)
    TEST_MFHI(0xcbedef25, 0xcbedef25)
    TEST_MFHI(0xb538bb0c, 0xb538bb0c)
    TEST_MFHI(0x00bce9af, 0x00bce9af)
    TEST_MFHI(0xdcdcc9a3, 0xdcdcc9a3)
    TEST_MFHI(0x5f10dbe4, 0x5f10dbe4)
    TEST_MFHI(0xa7d6bcbc, 0xa7d6bcbc)
    TEST_MFHI(0x537359da, 0x537359da)
    TEST_MFHI(0x14f79254, 0x14f79254)
    TEST_MFHI(0xf2106018, 0xf2106018)
    TEST_MFHI(0xe350b7d8, 0xe350b7d8)
    TEST_MFHI(0x58ace370, 0x58ace370)
    TEST_MFHI(0xecbda0d5, 0xecbda0d5)
    TEST_MFHI(0xc52743c0, 0xc52743c0)
    TEST_MFHI(0x552def30, 0x552def30)
    TEST_MFHI(0xb0855d30, 0xb0855d30)
    TEST_MFHI(0x6e6dc6b2, 0x6e6dc6b2)
    TEST_MFHI(0x52890000, 0x52890000)
    TEST_MFHI(0xed24abd4, 0xed24abd4)
    TEST_MFHI(0x8ceeaa08, 0x8ceeaa08)
    TEST_MFHI(0x3ee644c0, 0x3ee644c0)
    TEST_MFHI(0x9a5d6fe0, 0x9a5d6fe0)
    TEST_MFHI(0x2eaf38e8, 0x2eaf38e8)
    TEST_MFHI(0xfd281a38, 0xfd281a38)
    TEST_MFHI(0x739922d0, 0x739922d0)
    TEST_MFHI(0x35e02b56, 0x35e02b56)
    TEST_MFHI(0xccf948ba, 0xccf948ba)
    TEST_MFHI(0x2cd206d8, 0x2cd206d8)
    TEST_MFHI(0x783cec40, 0x783cec40)
    TEST_MFHI(0x3711e200, 0x3711e200)
    TEST_MFHI(0x364eca6e, 0x364eca6e)
    TEST_MFHI(0x57b0d404, 0x57b0d404)
    TEST_MFHI(0x4e0a2670, 0x4e0a2670)
    TEST_MFHI(0x201ec750, 0x201ec750)
    TEST_MFHI(0x6ad84ba0, 0x6ad84ba0)
    TEST_MFHI(0x8607994c, 0x8607994c)
    TEST_MFHI(0xd81d41ea, 0xd81d41ea)
    TEST_MFHI(0x84284dc0, 0x84284dc0)
    TEST_MFHI(0xdbe9f33a, 0xdbe9f33a)
    TEST_MFHI(0x71780f80, 0x71780f80)
    TEST_MFHI(0x0d952de0, 0x0d952de0)
    TEST_MFHI(0x16ec4528, 0x16ec4528)
    TEST_MFHI(0x4776e0ae, 0x4776e0ae)
    TEST_MFHI(0x94087e02, 0x94087e02)
    TEST_MFHI(0xb36c9cfc, 0xb36c9cfc)
    TEST_MFHI(0x46587f08, 0x46587f08)
    TEST_MFHI(0x222545bc, 0x222545bc)
    TEST_MFHI(0xd3c617c0, 0xd3c617c0)
    TEST_MFHI(0x2e6bfd75, 0x2e6bfd75)
    TEST_MFHI(0x3130e930, 0x3130e930)
    TEST_MFHI(0xffca05f8, 0xffca05f8)
    TEST_MFHI(0x102693fa, 0x102693fa)
    TEST_MFHI(0xd3fe3f14, 0xd3fe3f14)
    TEST_MFHI(0x8b1de170, 0x8b1de170)
    TEST_MFHI(0x956a769b, 0x956a769b)
    TEST_MFHI(0xace66bcc, 0xace66bcc)
    TEST_MFHI(0xd0fd19f0, 0xd0fd19f0)
    TEST_MFHI(0xed13df18, 0xed13df18)
    TEST_MFHI(0xa1bad7a6, 0xa1bad7a6)
    TEST_MFHI(0x2ad714b0, 0x2ad714b0)
    TEST_MFHI(0x14172b70, 0x14172b70)
    TEST_MFHI(0x7cff4e80, 0x7cff4e80)
    TEST_MFHI(0x171f65d8, 0x171f65d8)
    TEST_MFHI(0xcb7c6c00, 0xcb7c6c00)
    TEST_MFHI(0x9d1b5482, 0x9d1b5482)
    TEST_MFHI(0x1445c71c, 0x1445c71c)
    TEST_MFHI(0x09610836, 0x09610836)
    TEST_MFHI(0x7815eb60, 0x7815eb60)
    TEST_MFHI(0x70fa2370, 0x70fa2370)
    TEST_MFHI(0x91304650, 0x91304650)
    TEST_MFHI(0x0182aca8, 0x0182aca8)
    TEST_MFHI(0xac519e50, 0xac519e50)
    TEST_MFHI(0xf2b18ec0, 0xf2b18ec0)
    TEST_MFHI(0xb2d17089, 0xb2d17089)
    TEST_MFHI(0x892afd04, 0x892afd04)
    TEST_MFHI(0x79f96348, 0x79f96348)
    TEST_MFHI(0xe4ad3ddd, 0xe4ad3ddd)
    TEST_MFHI(0x1508b690, 0x1508b690)
    TEST_MFHI(0xdcae5c80, 0xdcae5c80)
    TEST_MFHI(0x4d20d118, 0x4d20d118)
    TEST_MFHI(0x7c0db120, 0x7c0db120)
    TEST_MFHI(0x5064e560, 0x5064e560)
    TEST_MFHI(0x4c15f2d5, 0x4c15f2d5)
    TEST_MFHI(0xc46dac00, 0xc46dac00)
    TEST_MFHI(0x13bf78e0, 0x13bf78e0)
    TEST_MFHI(0x801da900, 0x801da900)
    TEST_MFHI(0x04617750, 0x04617750)
    TEST_MFHI(0xa564430b, 0xa564430b)
    TEST_MFHI(0x56662adc, 0x56662adc)
    TEST_MFHI(0x53317267, 0x53317267)
    TEST_MFHI(0xdcc2f8d6, 0xdcc2f8d6)
    TEST_MFHI(0x7f9b08c0, 0x7f9b08c0)
    TEST_MFHI(0x2aea842c, 0x2aea842c)
    TEST_MFHI(0x2b3e5458, 0x2b3e5458)
    TEST_MFHI(0xdf410fc0, 0xdf410fc0)
    TEST_MFHI(0xc20e5b9c, 0xc20e5b9c)
    TEST_MFHI(0x69b5f0d6, 0x69b5f0d6)
    TEST_MFHI(0x2bfd57a6, 0x2bfd57a6)
    TEST_MFHI(0xa9bc1acc, 0xa9bc1acc)
    TEST_MFHI(0xe8cdc640, 0xe8cdc640)
    TEST_MFHI(0x0ee2a818, 0x0ee2a818)
    TEST_MFHI(0xcb71a800, 0xcb71a800)
    TEST_MFHI(0x09edf428, 0x09edf428)
    TEST_MFHI(0xed823800, 0xed823800)
    TEST_MFHI(0xd93ab3f8, 0xd93ab3f8)
    TEST_MFHI(0xafb6e9c0, 0xafb6e9c0)
    TEST_MFHI(0xa2937eb0, 0xa2937eb0)
    TEST_MFHI(0xc36b4870, 0xc36b4870)
    TEST_MFHI(0xea8633d0, 0xea8633d0)
    TEST_MFHI(0x4f814438, 0x4f814438)
    TEST_MFHI(0x7ef598e8, 0x7ef598e8)
    TEST_MFHI(0x1c2de7d0, 0x1c2de7d0)
    TEST_MFHI(0xccfdfbc9, 0xccfdfbc9)
    TEST_MFHI(0xd9d2d81a, 0xd9d2d81a)
    TEST_MFHI(0x21fa397c, 0x21fa397c)
    TEST_MFHI(0x3d1cf92c, 0x3d1cf92c)
    TEST_MFHI(0x137af739, 0x137af739)
    TEST_MFHI(0x9d325d28, 0x9d325d28)
    TEST_MFHI(0x8bc784f8, 0x8bc784f8)
    TEST_MFHI(0x267eae80, 0x267eae80)
    TEST_MFHI(0xabfac0ca, 0xabfac0ca)
    TEST_MFHI(0x7a286b6c, 0x7a286b6c)
    TEST_MFHI(0x741ac718, 0x741ac718)
    TEST_MFHI(0x0a0d4930, 0x0a0d4930)
    TEST_MFHI(0xc86ec474, 0xc86ec474)
    TEST_MFHI(0x07fecfd8, 0x07fecfd8)
    TEST_MFHI(0x9090280e, 0x9090280e)
    TEST_MFHI(0xcf1d3292, 0xcf1d3292)
    TEST_MFHI(0xfd88b12c, 0xfd88b12c)
    TEST_MFHI(0xdfef0d77, 0xdfef0d77)
    TEST_MFHI(0xf0e0e745, 0xf0e0e745)
    TEST_MFHI(0x39ccfe78, 0x39ccfe78)
    TEST_MFHI(0xf5ebf940, 0xf5ebf940)
    TEST_MFHI(0xe5613120, 0xe5613120)
    TEST_MFHI(0x5a17d5e0, 0x5a17d5e0)
    TEST_MFHI(0xc0a5ebf0, 0xc0a5ebf0)
    TEST_MFHI(0x21ad1844, 0x21ad1844)
    TEST_MFHI(0xcafee354, 0xcafee354)
    TEST_MFHI(0xdba0c238, 0xdba0c238)
    TEST_MFHI(0x29c48260, 0x29c48260)
    TEST_MFHI(0x96a708b0, 0x96a708b0)
    TEST_MFHI(0x6c76aaa0, 0x6c76aaa0)
    TEST_MFHI(0x1853fe90, 0x1853fe90)
    TEST_MFHI(0xf2c83a02, 0xf2c83a02)
    TEST_MFHI(0x35be5d20, 0x35be5d20)
    TEST_MFHI(0xfa6a4e08, 0xfa6a4e08)
    TEST_MFHI(0xa8235ae0, 0xa8235ae0)
    TEST_MFHI(0x87ef17a8, 0x87ef17a8)
    TEST_MFHI(0x527e0b50, 0x527e0b50)
    TEST_MFHI(0x8ee9ce78, 0x8ee9ce78)
    TEST_MFHI(0xb1d673f7, 0xb1d673f7)
    TEST_MFHI(0xd81e41dc, 0xd81e41dc)
    TEST_MFHI(0x88b55ae8, 0x88b55ae8)
    TEST_MFHI(0x4a560fc8, 0x4a560fc8)
    TEST_MFHI(0x54138184, 0x54138184)
    TEST_MFHI(0x3fa8e9fa, 0x3fa8e9fa)
    TEST_MFHI(0x6837b9d0, 0x6837b9d0)
    TEST_MFHI(0x962d37c0, 0x962d37c0)
    TEST_MFHI(0x3bf2c876, 0x3bf2c876)
    TEST_MFHI(0x6fe39b38, 0x6fe39b38)
    TEST_MFHI(0x75b213bf, 0x75b213bf)
    TEST_MFHI(0x639e45f0, 0x639e45f0)
    TEST_MFHI(0x5f869614, 0x5f869614)
    TEST_MFHI(0xd70e0800, 0xd70e0800)
    TEST_MFHI(0xcecdfe00, 0xcecdfe00)
    TEST_MFHI(0xf2f15369, 0xf2f15369)
    TEST_MFHI(0x1093e1b0, 0x1093e1b0)
    TEST_MFHI(0xe8bf3068, 0xe8bf3068)
    TEST_MFHI(0x1e131a58, 0x1e131a58)
    TEST_MFHI(0x2bdb4000, 0x2bdb4000)
    TEST_MFHI(0x45883c27, 0x45883c27)
    TEST_MFHI(0x79671072, 0x79671072)
    TEST_MFHI(0xa711320c, 0xa711320c)
    TEST_MFHI(0x1e853ed0, 0x1e853ed0)
    TEST_MFHI(0xb13dc7b0, 0xb13dc7b0)
    TEST_MFHI(0x9455b820, 0x9455b820)
    TEST_MFHI(0x21c98e94, 0x21c98e94)
    TEST_MFHI(0x448ad510, 0x448ad510)
    TEST_MFHI(0x43e2f916, 0x43e2f916)
    TEST_MFHI(0x50be495c, 0x50be495c)
    TEST_MFHI(0x84747a80, 0x84747a80)
    TEST_MFHI(0x00000000, 0x00000000)
    HIT_GOOD_TRAP

inst_error:
    HIT_GOOD_TRAP